/************************************************************
*
*	CyberLink for C
*
*	Copyright (C) Satoshi Konno 2009
*
*	File: crenderingcontrol_service.c
*
*	Revision:
*       2008/06/16
*               - first release.
*
************************************************************/

#ifdef HAVE_CONFIG_H
#  include "config.h"
#endif

#include <cybergarage/upnp/std/av/cmediarenderer.h>

/****************************************
* Service Description (Rendering Control)
****************************************/

static char *CG_UPNPAV_DMR_RENDERINGCONTROL_SERVICE_DESCRIPTION = 
#if defined(CG_CLINKCAV_USE_UPNPSTD_XML)
"<?xml version=\"1.0\"encoding=\"utf-8\"?>\n"
"<scpd xmlns=\"urn:schemas-upnp-org:service-1-0\">\n"
"  <specVersion>\n"
"     <major>1</major>\n"
"     <minor>0</minor>\n"
"  </specVersion>\n"
"  <actionList>\n"
"     <action>\n"
"        <name>GetBlueVideoBlackLevel</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentBlueVideoBlackLevel</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>BlueVideoBlackLevel</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetBlueVideoGain</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentBlueVideoGain</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>BlueVideoGain</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetBrightness</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentBrightness</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>Brightness</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetColorTemperature</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentColorTemperature</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>ColorTemperature</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetContrast</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentContrast</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>Contrast</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetGreenVideoBlackLevel</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentGreenVideoBlackLevel</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>GreenVideoBlackLevel</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetGreenVideoGain</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentGreenVideoGain</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>GreenVideoGain</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetHorizontalKeystone</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentHorizontalKeystone</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>HorizontalKeystone</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetLoudness</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>Channel</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentLoudness</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>Loudness</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetMute</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>Channel</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentMute</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>Mute</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetRedVideoBlackLevel</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentRedVideoBlackLevel</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>RedVideoBlackLevel</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetRedVideoGain</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentRedVideoGain</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>RedVideoGain</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetSharpness</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentSharpness</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>Sharpness</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetVerticalKeystone</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentVerticalKeystone</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>VerticalKeystone</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>GetVolume</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>Channel</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentVolume</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>Volume</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>ListPresets</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>CurrentPresetNameList</name>\n"
"              <direction>out</direction>\n"
"              <relatedStateVariable>PresetNameList</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SelectPreset</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>PresetName</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_PresetName</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetBlueVideoBlackLevel</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredBlueVideoBlackLevel</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>BlueVideoBlackLevel</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetBlueVideoGain</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredBlueVideoGain</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>BlueVideoGain</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetBrightness</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredBrightness</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>Brightness</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetColorTemperature</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredColorTemperature</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>ColorTemperature</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetContrast</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredContrast</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>Contrast</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetGreenVideoBlackLevel</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredGreenVideoBlackLevel</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>GreenVideoBlackLevel</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetGreenVideoGain</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredGreenVideoGain</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>GreenVideoGain</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetHorizontalKeystone</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredHorizontalKeystone</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>HorizontalKeystone</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetLoudness</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>Channel</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredLoudness</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>Loudness</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetMute</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>Channel</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredMute</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>Mute</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetRedVideoBlackLevel</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredRedVideoBlackLevel</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>RedVideoBlackLevel</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetRedVideoGain</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredRedVideoGain</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>RedVideoGain</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetSharpness</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredSharpness</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>Sharpness</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetVerticalKeystone</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredVerticalKeystone</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>VerticalKeystone</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"     <action>\n"
"        <name>SetVolume</name>\n"
"        <argumentList>\n"
"           <argument>\n"
"              <name>InstanceID</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>Channel</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>\n"
"           </argument>\n"
"           <argument>\n"
"              <name>DesiredVolume</name>\n"
"              <direction>in</direction>\n"
"              <relatedStateVariable>Volume</relatedStateVariable>\n"
"           </argument>\n"
"        </argumentList>\n"
"     </action>\n"
"  </actionList>\n"
"  <serviceStateTable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>VerticalKeystone</name>\n"
"        <dataType>i2</dataType>\n"
"        <allowedValueRange>\n"
"           <minimum>-32768</minimum>\n"
"           <maximum>32767</maximum>\n"
"           <step>1</step>\n"
"        </allowedValueRange>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"yes\">\n"
"        <name>LastChange</name>\n"
"        <dataType>string</dataType>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>A_ARG_TYPE_Channel</name>\n"
"        <dataType>string</dataType>\n"
"        <allowedValueList>\n"
"           <allowedValue>Master</allowedValue>\n"
"           <allowedValue>LF</allowedValue>\n"
"           <allowedValue>RF</allowedValue>\n"
"        </allowedValueList>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>Loudness</name>\n"
"        <dataType>boolean</dataType>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>HorizontalKeystone</name>\n"
"        <dataType>i2</dataType>\n"
"        <allowedValueRange>\n"
"           <minimum>-32768</minimum>\n"
"           <maximum>32767</maximum>\n"
"           <step>1</step>\n"
"        </allowedValueRange>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>A_ARG_TYPE_InstanceID</name>\n"
"        <dataType>ui4</dataType>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>BlueVideoBlackLevel</name>\n"
"        <dataType>ui2</dataType>\n"
"        <allowedValueRange>\n"
"           <minimum>0</minimum>\n"
"           <maximum>100</maximum>\n"
"           <step>1</step>\n"
"        </allowedValueRange>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>RedVideoGain</name>\n"
"        <dataType>ui2</dataType>\n"
"        <allowedValueRange>\n"
"           <minimum>0</minimum>\n"
"           <maximum>100</maximum>\n"
"           <step>1</step>\n"
"        </allowedValueRange>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>GreenVideoBlackLevel</name>\n"
"        <dataType>ui2</dataType>\n"
"        <allowedValueRange>\n"
"           <minimum>0</minimum>\n"
"           <maximum>100</maximum>\n"
"           <step>1</step>\n"
"        </allowedValueRange>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>Volume</name>\n"
"        <dataType>ui2</dataType>\n"
"        <allowedValueRange>\n"
"           <minimum>0</minimum>\n"
"           <maximum>100</maximum>\n"
"           <step>1</step>\n"
"        </allowedValueRange>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>Mute</name>\n"
"        <dataType>boolean</dataType>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>Brightness</name>\n"
"        <dataType>ui2</dataType>\n"
"        <allowedValueRange>\n"
"           <minimum>0</minimum>\n"
"           <maximum>100</maximum>\n"
"           <step>1</step>\n"
"        </allowedValueRange>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>PresetNameList</name>\n"
"        <dataType>string</dataType>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>A_ARG_TYPE_PresetName</name>\n"
"        <dataType>string</dataType>\n"
"        <allowedValueList>\n"
"           <allowedValue>FactoryDefaults</allowedValue>\n"
"           <allowedValue>InstallationDefaults</allowedValue>\n"
"           <allowedValue>Vendor defined</allowedValue>\n"
"        </allowedValueList>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>ColorTemperature</name>\n"
"        <dataType>ui2</dataType>\n"
"        <allowedValueRange>\n"
"           <minimum>0</minimum>\n"
"           <maximum>65535</maximum>\n"
"           <step>1</step>\n"
"        </allowedValueRange>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>Contrast</name>\n"
"        <dataType>ui2</dataType>\n"
"        <allowedValueRange>\n"
"           <minimum>0</minimum>\n"
"           <maximum>100</maximum>\n"
"           <step>1</step>\n"
"        </allowedValueRange>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>GreenVideoGain</name>\n"
"        <dataType>ui2</dataType>\n"
"        <allowedValueRange>\n"
"           <minimum>0</minimum>\n"
"           <maximum>100</maximum>\n"
"           <step>1</step>\n"
"        </allowedValueRange>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>RedVideoBlackLevel</name>\n"
"        <dataType>ui2</dataType>\n"
"        <allowedValueRange>\n"
"           <minimum>0</minimum>\n"
"           <maximum>100</maximum>\n"
"           <step>1</step>\n"
"        </allowedValueRange>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>BlueVideoGain</name>\n"
"        <dataType>ui2</dataType>\n"
"        <allowedValueRange>\n"
"           <minimum>0</minimum>\n"
"           <maximum>100</maximum>\n"
"           <step>1</step>\n"
"        </allowedValueRange>\n"
"     </stateVariable>\n"
"     <stateVariable sendEvents=\"no\">\n"
"        <name>Sharpness</name>\n"
"        <dataType>ui2</dataType>\n"
"        <allowedValueRange>\n"
"           <minimum>0</minimum>\n"
"           <maximum>100</maximum>\n"
"           <step>1</step>\n"
"        </allowedValueRange>\n"
"     </stateVariable>\n"
"  </serviceStateTable>\n"
"</scpd>\n";
#else
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
"<scpd xmlns=\"urn:schemas-upnp-org:service-1-0\">\n"
"   <specVersion>\n"
"      <major>1</major>\n"
"      <minor>0</minor>\n"
"   </specVersion>\n"
"   <actionList>\n"
"      <action>\n"
"         <name>GetBlueVideoBlackLevel</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentBlueVideoBlackLevel</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>BlueVideoBlackLevel</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetBlueVideoGain</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentBlueVideoGain</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>BlueVideoGain</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetBrightness</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentBrightness</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>Brightness</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetColorTemperature</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentColorTemperature</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>ColorTemperature</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetContrast</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentContrast</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>Contrast</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetGreenVideoBlackLevel</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentGreenVideoBlackLevel</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>GreenVideoBlackLevel</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetGreenVideoGain</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentGreenVideoGain</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>GreenVideoGain</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetHorizontalKeystone</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentHorizontalKeystone</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>HorizontalKeystone</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetLoudness</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>Channel</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentLoudness</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>Loudness</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetMute</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>Channel</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentMute</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>Mute</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetRedVideoBlackLevel</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentRedVideoBlackLevel</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>RedVideoBlackLevel</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetRedVideoGain</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentRedVideoGain</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>RedVideoGain</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetSharpness</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentSharpness</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>Sharpness</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetVerticalKeystone</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentVerticalKeystone</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>VerticalKeystone</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>GetVolume</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>Channel</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentVolume</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>Volume</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>ListPresets</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>CurrentPresetNameList</name>\n"
"               <direction>out</direction>\n"
"               <relatedStateVariable>PresetNameList</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SelectPreset</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>PresetName</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_PresetName</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetBlueVideoBlackLevel</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredBlueVideoBlackLevel</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>BlueVideoBlackLevel</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetBlueVideoGain</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredBlueVideoGain</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>BlueVideoGain</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetBrightness</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredBrightness</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>Brightness</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetColorTemperature</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredColorTemperature</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>ColorTemperature</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetContrast</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredContrast</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>Contrast</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetGreenVideoBlackLevel</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredGreenVideoBlackLevel</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>GreenVideoBlackLevel</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetGreenVideoGain</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredGreenVideoGain</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>GreenVideoGain</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetHorizontalKeystone</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredHorizontalKeystone</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>HorizontalKeystone</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetLoudness</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>Channel</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredLoudness</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>Loudness</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetMute</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>Channel</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredMute</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>Mute</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetRedVideoBlackLevel</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredRedVideoBlackLevel</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>RedVideoBlackLevel</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetRedVideoGain</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredRedVideoGain</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>RedVideoGain</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetSharpness</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredSharpness</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>Sharpness</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetVerticalKeystone</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredVerticalKeystone</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>VerticalKeystone</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"      <action>\n"
"         <name>SetVolume</name>\n"
"         <argumentList>\n"
"            <argument>\n"
"               <name>InstanceID</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>Channel</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable>\n"
"            </argument>\n"
"            <argument>\n"
"               <name>DesiredVolume</name>\n"
"               <direction>in</direction>\n"
"               <relatedStateVariable>Volume</relatedStateVariable>\n"
"            </argument>\n"
"         </argumentList>\n"
"      </action>\n"
"   </actionList>\n"
"   <serviceStateTable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>VerticalKeystone</name>\n"
"         <dataType>i2</dataType>\n"
"         <allowedValueRange>\n"
"            <minimum>-32768</minimum>\n"
"            <maximum>32767</maximum>\n"
"            <step>1</step>\n"
"         </allowedValueRange>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"yes\">\n"
"         <name>LastChange</name>\n"
"         <dataType>string</dataType>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>A_ARG_TYPE_Channel</name>\n"
"         <dataType>string</dataType>\n"
"         <allowedValueList>\n"
"            <allowedValue>Master</allowedValue>\n"
"            <allowedValue>LF</allowedValue>\n"
"            <allowedValue>RF</allowedValue>\n"
"         </allowedValueList>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>Loudness</name>\n"
"         <dataType>boolean</dataType>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>HorizontalKeystone</name>\n"
"         <dataType>i2</dataType>\n"
"         <allowedValueRange>\n"
"            <minimum>-32768</minimum>\n"
"            <maximum>32767</maximum>\n"
"            <step>1</step>\n"
"         </allowedValueRange>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>A_ARG_TYPE_InstanceID</name>\n"
"         <dataType>ui4</dataType>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>BlueVideoBlackLevel</name>\n"
"         <dataType>ui2</dataType>\n"
"         <allowedValueRange>\n"
"            <minimum>0</minimum>\n"
"            <maximum>100</maximum>\n"
"            <step>1</step>\n"
"         </allowedValueRange>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>RedVideoGain</name>\n"
"         <dataType>ui2</dataType>\n"
"         <allowedValueRange>\n"
"            <minimum>0</minimum>\n"
"            <maximum>100</maximum>\n"
"            <step>1</step>\n"
"         </allowedValueRange>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>GreenVideoBlackLevel</name>\n"
"         <dataType>ui2</dataType>\n"
"         <allowedValueRange>\n"
"            <minimum>0</minimum>\n"
"            <maximum>100</maximum>\n"
"            <step>1</step>\n"
"         </allowedValueRange>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>Volume</name>\n"
"         <dataType>ui2</dataType>\n"
"         <allowedValueRange>\n"
"            <minimum>0</minimum>\n"
"            <maximum>100</maximum>\n"
"            <step>1</step>\n"
"         </allowedValueRange>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>Mute</name>\n"
"         <dataType>boolean</dataType>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>Brightness</name>\n"
"         <dataType>ui2</dataType>\n"
"         <allowedValueRange>\n"
"            <minimum>0</minimum>\n"
"            <maximum>100</maximum>\n"
"            <step>1</step>\n"
"         </allowedValueRange>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>PresetNameList</name>\n"
"         <dataType>string</dataType>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>A_ARG_TYPE_PresetName</name>\n"
"         <dataType>string</dataType>\n"
"         <allowedValueList>\n"
"            <allowedValue>FactoryDefaults</allowedValue>\n"
"            <allowedValue>InstallationDefaults</allowedValue>\n"
"            <allowedValue>Vendor defined</allowedValue>\n"
"         </allowedValueList>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>ColorTemperature</name>\n"
"         <dataType>ui2</dataType>\n"
"         <allowedValueRange>\n"
"            <minimum>0</minimum>\n"
"            <maximum>65535</maximum>\n"
"            <step>1</step>\n"
"         </allowedValueRange>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>Contrast</name>\n"
"         <dataType>ui2</dataType>\n"
"         <allowedValueRange>\n"
"            <minimum>0</minimum>\n"
"            <maximum>100</maximum>\n"
"            <step>1</step>\n"
"         </allowedValueRange>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>GreenVideoGain</name>\n"
"         <dataType>ui2</dataType>\n"
"         <allowedValueRange>\n"
"            <minimum>0</minimum>\n"
"            <maximum>100</maximum>\n"
"            <step>1</step>\n"
"         </allowedValueRange>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>RedVideoBlackLevel</name>\n"
"         <dataType>ui2</dataType>\n"
"         <allowedValueRange>\n"
"            <minimum>0</minimum>\n"
"            <maximum>100</maximum>\n"
"            <step>1</step>\n"
"         </allowedValueRange>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>BlueVideoGain</name>\n"
"         <dataType>ui2</dataType>\n"
"         <allowedValueRange>\n"
"            <minimum>0</minimum>\n"
"            <maximum>100</maximum>\n"
"            <step>1</step>\n"
"         </allowedValueRange>\n"
"      </stateVariable>\n"
"      <stateVariable sendEvents=\"no\">\n"
"         <name>Sharpness</name>\n"
"         <dataType>ui2</dataType>\n"
"         <allowedValueRange>\n"
"            <minimum>0</minimum>\n"
"            <maximum>100</maximum>\n"
"            <step>1</step>\n"
"         </allowedValueRange>\n"
"      </stateVariable>\n"
"   </serviceStateTable>\n"
"</scpd>\n";
#endif

/****************************************
* cg_upnpav_dmr_renderingctrl_actionreceived
****************************************/

BOOL cg_upnpav_dmr_renderingctrl_actionreceived(CgUpnpAction *action)
{
	CgUpnpAvRenderer *dmr;
	CgUpnpDevice *dev;
	char *actionName;
	CgUpnpArgument *arg;

	actionName = cg_upnp_action_getname(action);
	if (cg_strlen(actionName) <= 0)
		return FALSE;

	dev = (CgUpnpDevice *)cg_upnp_service_getdevice(cg_upnp_action_getservice(action));
	if (!dev) 
		return FALSE;

	dmr = (CgUpnpAvRenderer *)cg_upnp_device_getuserdata(dev);
	if (!dmr)
		return FALSE;

	/* GetMute*/
	if (cg_streq(actionName, CG_UPNPAV_DMR_RENDERINGCONTROL_GETMUTE)) {
		arg = cg_upnp_action_getargumentbyname(action, CG_UPNPAV_DMR_RENDERINGCONTROL_CURRENTMUTE);
		if (!arg)
			return FALSE;
		cg_upnp_argument_setvalue(arg, "0");
		return TRUE;
	}

	/* GetVolume */
	if (cg_streq(actionName, CG_UPNPAV_DMR_RENDERINGCONTROL_GETVOLUME)) {
		arg = cg_upnp_action_getargumentbyname(action, CG_UPNPAV_DMR_RENDERINGCONTROL_CURRENTVOLUME);
		if (!arg)
			return FALSE;
		cg_upnp_argument_setvalue(arg, "1");
		return TRUE;
	}
	
	return FALSE;
}

/****************************************
 * cg_upnpav_dmr_renderingctrl_actionreceived
 ****************************************/

BOOL cg_upnpav_dmr_renderingctrl_queryreceived(CgUpnpStateVariable *statVar)
{
	return FALSE;
}

/****************************************
* cg_upnpav_dmr_renderingctrl_init
****************************************/

BOOL cg_upnpav_dmr_renderingctrl_init(CgUpnpAvRenderer *dmr)
{
	CgUpnpDevice *dev;
	CgUpnpService *service;
	CgUpnpAction *action;

	dev = cg_upnpav_dmr_getdevice(dmr);
	if (!dev)
		return FALSE;

	service = cg_upnp_device_getservicebytype(dev, CG_UPNPAV_DMR_RENDERINGCONTROL_SERVICE_TYPE);
	if (!service)
		return FALSE;
	
	if (cg_upnp_service_parsedescription(service, CG_UPNPAV_DMR_RENDERINGCONTROL_SERVICE_DESCRIPTION, cg_strlen(CG_UPNPAV_DMR_RENDERINGCONTROL_SERVICE_DESCRIPTION)) == FALSE)
		return FALSE;

	cg_upnp_service_setuserdata(service, dmr);
	for (action=cg_upnp_service_getactions(service); action; action=cg_upnp_action_next(action))
		cg_upnp_action_setuserdata(action, dmr);

	return TRUE;
}

/****************************************
 * cg_upnpav_dmr_setrenderingcontrollastchange
 ****************************************/

void cg_upnpav_dmr_setrenderingcontrollastchange(CgUpnpAvRenderer *dmr, char *value)
{
	CgUpnpService *service;
	CgUpnpStateVariable *stateVar;
	
	service = cg_upnp_device_getservicebyexacttype(dmr->dev, CG_UPNPAV_DMR_RENDERINGCONTROL_SERVICE_TYPE);
	stateVar = cg_upnp_service_getstatevariablebyname(service, CG_UPNPAV_DMR_RENDERINGCONTROL_LASTCHANGE);
	cg_upnp_statevariable_setvalue(stateVar, value);
}

/****************************************
 * cg_upnpav_dmr_getrenderingcontrollastchange
 ****************************************/

char *cg_upnpav_dmr_getrenderingcontrollastchange(CgUpnpAvRenderer *dmr)
{
	CgUpnpService *service;
	CgUpnpStateVariable *stateVar;
	
	service = cg_upnp_device_getservicebyexacttype(dmr->dev, CG_UPNPAV_DMR_AVTRANSPORT_SERVICE_TYPE);
	stateVar = cg_upnp_service_getstatevariablebyname(service, CG_UPNPAV_DMR_AVTRANSPORT_LASTCHANGE);
	return cg_upnp_statevariable_getvalue(stateVar);
}
